// 分类相关的数据ts类型

// 分类一的返回结果
// {
//   "code": 200,
//   "message": "成功",
//   "data": [
//     {
//       "id": 1,
//       "name": "图书、音像、电子书刊"
//     }
//   ],
//   "ok": true
// }

// 分类二的返回结果
// {
//     "code": 200,
//     "message": "成功",
//     "data": [
//       {
//         "id": 1,
//         "name": "电子书刊",
//         "category1Id": 1
//       }
//     ],
//     "ok": true
//   }

// 分类三的返回结果
// {
//     "code": 200,
//     "message": "成功",
//     "data": [
//       {
//         "id": 8,
//         "name": "少儿",
//         "category2Id": 3
//       }
//     ],
//     "ok": true
//   }

// 分类相关的数据ts类型
export interface ResposeData {
  code: number
  message: string
  ok: boolean
}

// 分类ts类型
export interface CategoryObj {
  id: number | string
  name: string
  category1Id?: number
  category2Id?: number
}

// 响应的分类接口返回数据的类型
export interface CategoryResponseData extends ResposeData {
  data: CategoryObj[]
}

// 获取分类下已有的属性与属性值的接口的返回值类型
/*
 {
    "code": 200,
    "message": "成功",
    "data": [
      {
        "id": 107,
        "attrName": "电池容量",
        "categoryId": 13,
        "categoryLevel": 2,
        "attrValueList": [
          {
            "id": 178,
            "valueName": "1200mAh到3000mAh",
            "attrId": 107
          },
          {
            "id": 177,
            "valueName": "1200mAh以下",
            "attrId": 107
          },
          {
            "id": 179,
            "valueName": "3000mAh以上",
            "attrId": 107
          }
        ]
      },
    {
      "id": 111,
      "attrName": "CPU型号",
      "categoryId": 61,
      "categoryLevel": 3,
      "attrValueList": [
        {
          "id": 182,
          "valueName": "骁龙845",
          "attrId": 111
        },
        {
          "id": 184,
          "valueName": "5G骁龙768G",
          "attrId": 111
        },
        {
          "id": 181,
          "valueName": "骁龙730G",
          "attrId": 111
        },
        {
          "id": 183,
          "valueName": "麒麟990",
          "attrId": 111
        },
        {
          "id": 180,
          "valueName": "骁龙439",
          "attrId": 111
        }
      ]
    },
    ],
    "ok": true
  }
*/

// 属性与属性值的ts类型

// 属性值对象的ts类型
export interface AttrValue {
  id?: number
  valueName: string
  attrId?: number
  flag: boolean // 用来控制属性值是编辑模式还是查看模式
}

// 存储每一个属性值的数组类型
export type AttrValueList = AttrValue[]

// 属性对象
export interface Attr {
  id?: number
  attrName: string
  categoryId: number | string
  categoryLevel: number
  attrValueList: AttrValueList
}

// 存储每一个属性对象的数组ts类型
export type attrList = Attr[]

// 属性接口返回的数据ts类型
export interface AttrResponseData extends ResposeData {
  data: attrList[]
}

// 添加属性与修改属性的参数解释
/*
{
  "id": 0，  // 已有属性的id
  "attrName": "string", // 已有属性的名字
  "attrValueList": [
    {
      "attrId": 0, // 属性值归属于哪一个属性
      "id": 0,  // 已有的属性值的id
      "valueName": "string"
    }
  ],
  "categoryId": 0, // 已有的属性归属于哪个三级分类
  "categoryLevel": 3, // 代表的几级分类
  
}
可以结合vue3的开发者工具返回值并结合后端接口的响应值
*/

// 某一个三级分类添加一个新的属性
/*
{
  "attrName": "string", // 已有属性的名字
  "attrValueList": [
    {
      "valueName": "string"
    }
  ],
  "categoryId": 0, // 三级分类的ID
  "categoryLevel": 3, // 代表的几级分类
}
*/
